package cn.com.wxd.service.sms;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import cn.com.wxd.service.sms.chuanglan.SmsService_chuanglan;
import cn.com.wxd.service.sms.webchinese.SmsService_webchinese;

/**
 * Title:短信发送服务工厂
 * Description:cn.com.wxd.service.sms
 * <p>
 * Company: Amumu管理平台
 * Copyright: Copyright (c) 2015
 * All right reserved.
 * Created time: 2016-4-13 下午4:59:17
 *
 * @author WangXuDong
 * @version 1.0
 */
public class SmsSentFactor {
    private static final Logger log = LoggerFactory.getLogger(SmsSentFactor.class);

    /**
     * 从工厂中获取短信发送的服务
     *
     * @param smsProvider 短信发送服务
     *
     * @return
     */
    public static SmsSenter getSenter(SmsProvider smsProvider) {
        SmsSenter ss;
        if (smsProvider.value().equals(SmsProvider.CHUANGLAN.value())) {
            ss = new SmsService_chuanglan();
        } else if (smsProvider.value().equals(SmsProvider.WEBCHINESE.value())) {
            ss = new SmsService_webchinese();
        } else {
            log.error("没有实现" + smsProvider.value() + "类型的短信发送服务，或者在枚举SmsProvider中未定义!",
                    new Exception("没有实现" + smsProvider.value() + "类型的短信发送服务"));
            ss = null;
        }
        return ss;
    }

    /**
     * 获取默认的发送对象
     *
     * @return
     */
    public static SmsSenter getSenter() {
        String defaultservice = SmsInfo.getDefaultService();
        if (defaultservice != null) {
            for (SmsProvider smsProvider : SmsProvider.values()) {
                if (defaultservice.equals(smsProvider.value())) {
                    return getSenter(smsProvider);
                }
            }
        }
        log.error("默认的短信发送服务" + defaultservice + "没有实现，或者在枚举SmsProvider内未定义!",
                new Exception("默认的短信发送服务" + defaultservice + "没有实现"));
        return null;
    }
}
